/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package korekosystem;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import korekosystem.vista.VentanaPrincipal;
import korekosystem.modelo.Cliente;
/**
 *
 * @author santiago
 */
public class KorekoSystem {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        /*
        System.out.println("Prueba jpa...");
        
        System.out.println("Creo cliente...");
        Cliente c = new Cliente(1);
        c.setNombre("Juan");
        c.setApellido("Perezozo");
        c.setSaldo(100);
        c.setTelefono1("0982-123-124");
        
        System.out.println("Creo transaccion");
        EntityTransaction tr = null;
        try {
            tr = em.getTransaction();
            tr.begin();
            // si el id de la bd es nulo el objeto no existe
            if (c.getId() == null) {
                em.persist(c);
            } else {
                em.merge(c);
            }
            tr.commit(); //manda la transaccion
        } catch (Exception e) {
            if (tr != null && tr.isActive()) {
                tr.rollback();
            }
            e.printStackTrace();
        }
        System.out.println("Aca ya debio guardarle a el cliente " + c.toString());

        */
        
        // TODO code application logic here
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {

  //              try {
                    /* aqui se indica a swing utilizar el look and feel (L&F)
                    * del sistema nativo
                    */
/*
                    UIManager.setLookAndFeel(
                            UIManager.getSystemLookAndFeelClassName());
                } catch (Exception e) {*/
                    try {
                        /* si no se puede cargar el L&F nativo, se usa el
                         * L&F de java
                         */
                        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                            
                            if ("Nimbus".equals(info.getName())) {
                                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                                
                            }
                            System.out.println(info.getName());
                        }
                            /* aqui se invoca por primera vez al motor de persistencia,
                            * de manera que este se cargue e inicialice
                            */
                           EntityManager em;
                           try {
                                em =
                                       Persistence.createEntityManagerFactory("KorekoSystemPU")
                                       .createEntityManager();
                           } catch (Exception e) {
                               JOptionPane.showMessageDialog(null, "Error del sistema" +
                                       " [" + e.getMessage() + "]");
                               e.printStackTrace();
                               return;
                           }
                    } catch (Exception ignorada) {}
                   /*
                    JOptionPane.showMessageDialog(null, "Error del sistema" +
                            " [" + e.getMessage() + "]");
                    e.printStackTrace();
                    return;
                }*/

                /* aqui se invoca por primera vez al motor de persistencia,
                 * de manera que este se cargue e inicialice
                 */
                /*
                try {
                    EntityManager em =
                            Persistence.createEntityManagerFactory("FabriVentasPU")
                            .createEntityManager();
                    em.close();
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(null, "Error del sistema" +
                            " [" + e.getMessage() + "]");
                    e.printStackTrace();
                    return;
                }
                */
                
                /* aqui se inicia la ventana principal de la aplicación
                 */
                new VentanaPrincipal().setVisible(true);
            }
        });
    }
}
